perm filename WARREN.TXT[1,LMM]1 blob sn#054957 filedate 1973-07-25 generic text, type T, neo UTF8
Date: 28-MAY-73 1215-PDT From: TEITELMAN Re:   VARIOUS

1. FUTURE - LOOKUP LAST AND MEMB SO USER CAN MAKE FAST DECLARATION.

2. USE ASSOC WHERE POSSIBLE, AND LOOK IT UP ALSO SO USER CANUSE FASSOC.

3. INSTALL A  FLAG OR NEW  E.P. (ELEMENTARY PATTERN)
CORRESPONDING TO $ THAT DOES NOT CONTINUE SEARCHING ONCE IT
SUCCEEDS (FUZZY CONCEPT), E.G.
($ ('A $2) $)  WOULD BE AN ASSOC WITH A CHECK ON THE 
LENGTH OF THE EEMENT, BUT WOULD NOT CONTINUE SEARCHING
FOR ANOTHER 'A, SIMILARLY ($ 'A 'B $) WOULD
BE (EQ (CADR (MEMB 'A X) 'B)). I THINK THE DEFAULT
FOR $ SHOULD BE THIS WAY, AND THAT SOMETHNG LIKE $$
WOULD MEAN SEARCH YOUR ASS OFF.

4. CHECK AND SEE WHERE EXTRA SPACES MAKE A DIFFERENCE.
IN PARTICULAR ($ = = X $) AND ($ == X $) ARE NOT EQUIVALENT.
THIS SHOULD BE FIXED.

5. DONT QUOTE NUMBERS. EVEN IF DEFAULT IS FOR QUOTE OR ASSIGNMENT,
NUMBERS SHULD ALWAYS GO IN AS JUST NUMBERS.

6. LOOK UP RPLACA AND RPLACD SO USER CAN DECLARE FOR FRPLACA AND
/RPLACA, ETC. IF YOU WANT TO INSTALL LOOKUP NOW, DO (CLISPLOOKUP
FN-NAME NIL NIL (GETP FN-NAME 'LISPFN)), OR TO BE MORE EFFICIENT,
SINCE MOST FUNCTIONS WONT HAVE THEIR OWN DECLARATIONS, INCLUDE THE
CODE FROM THE FUNCTION CLISPLOOKUP (WHICH IS CONTAINED IN THE FILE
CLISP) INYOUR OWN BLOCK. CLISPLOOKUP0 IS OUTSIDE OF THE DWIMBLOCK
SINCE IT IS ONLY CALLED WHEN A FULL LOOKUP HAS TO BE DONE. IN MOST
CASES,  THE SIMPLE FUNCTION SHOWN IN CLISPLOOKUP WILL SUFFICE.

7. CHANGE THE INITIAL  VARIABLE DEFAULT TO ==
THATS = AND POSTPONE-SETQ-FLG TO NIL, I.E. DONT POSTPONE.

8. MAKE SURE THAT POSTPONE SETQ FLG REALLY WORKS. FOR EXAMPLE IN THE
PATTERN (A←($ !B←'FOO ($ !==C))), IF POSTPONESETQFLG IS NIL, THEN
THERE IS NO NEED FOR DUMMY VARIABLES NOR FOR A PROG, I.E. YOU CAN
USE THE VARIABLES MENTIONED IN THE PATTERN FOR STORING TEMORARY
RESULTS.

9. X:($1 *←!(3 4) 5) CAN YOU IMPROVE THE DIAGNOSTIC SO
AS NOT TO BE SO SCARY? ALSO WHY ARE 3 AND 4 QUOTED AND 5
DEFAUTED (ACTUALLY 3 4 AND 5 SHOULD BE LEFT AAONE SINCE THEY
ARE NUMBERS, BUT I PRESUME IF THEY HAD BEEN LITATOMS 
THE SAME WOULD HOLD)

10. WHY DOES X:($ !X←(3 4) $) GO TO A PROG, BUT X:($ X←(3 4) $) TO A
SOME?  ($1 IN ABOVE LINE SHULD BE $)

11. X:($1 !X←$1 $2) DONT NEED THE EXTRA T,
ALSO FOR X:($ !X←... $) IN GENERAL, THERE ARE MAAY CASES
WHERE YOU ALREADY KNOW THAT THE RESULT OF THE SETQ
IS NON NIL, SO YOU DONT HAVE TO PUT IN THAT T ATT THE END.

12. *****WRONG - X:($ !(A B) C D) ALSO X:($ !($1 $2) $3)
X:($ !(A B) C D $)

13. LOOK AT X:($ Z $) WITH DEFAUT FOR ASSIGNMENT.
I DONT UNDERSTAND THE SOME WITH (LAMBDA (X) T)

14. X:($ 'A !* $1) COULD BE BETTER.

15. IN YOUR WRITEUP, DID YOU MEAN THAT ! WORKS ON ALL
PATTERNS THAT APPEAR AS THE LAST ELEMENT, BUT ONLY
!* AND !(SUBPATTERN) WORK IN THE INTERIOR?
I THINK THIS IS WHAT YOU MEAN, I.E. != OR !== IS OK
AS THE LAST E.P. ALTHOUGH YOU SAY ONLY
!* AND !(SUBPATTERN) ARE IMPLEMENTED.

16. I GUESS YOU KNOW THAT ($ X←!(PATTERN) $) DOESNT WORK.

17. ($1 'A $ 'B) GOES TO (AND (EQ --) (EQ (CAR (LAST (CDDR X)) 'B) I
THINK ON LAST'S, YOU MIGHT AS WELL JUST SAY (LAST X) AS (LAST (CDDR
X)) - I UNDERSTAND THAT IN THE CASE OF MEMBS IT MAKES A DIFFERENT,
E.G. ($1 'A $ 'B $), YOU WOULD WANT TO SAY (MEMB 'B (CDDR X)) SINCE
THE FIRST ELEMENT MIGHT BE B.

18. ($1 Y←$3 $1) DOESNT WORK. I THINK THIS IS REALLY A CASE OF A
HIDDEN ! IN THE MIDDLE, BUT IT ISNT EXPLAINED IN THE WRITEUP, AND I
EITHER HAVE TO EXPLAIN IT OR ELSE IT HAS TO WORK.

19. ****WRONG ($1 'C Y←$1 $)  DOESNT DO CDDR CHECK.

20. USE NULL FOR NOT IN TRANSLATION WHEN WHAT IS MEAAT IS EQ NIL.
I.E. FOR ALL CASES IN THE CURENT CONFIGURATION..

21. ($ ! 'A) SHOULD BE (EQ (CDR (LAST --)) NOT
(AND (SETQ --) (EQ --)) I WOULD LIKE TO SEE YOU TRY
HARD TO AVOIDE UNNECESSARY PROGS AND DUMMY VARIABLES.

22. THINK ABOUT INSTALLING  A ¬ NOT PATTERN-
I.E. TILDE, E.G. ¬=FOO, ¬&:NUMBERP, ETC.

23. ALSO INSTALLING AN (AND) AND (OR) & AND |
I.E. ONE MIGHT SAY =X|=Y
OR ¬=X(AND)¬=Y, ETC. I MENTION THESE BECAUSE IN
LOOKING THROUGH MY LISTINGS FOR AN EXAMPLE TO
USE IN MY PAPER, I WAS MOST OFTEN FRUSTRATED 
BECAUSE WE DID NOT HAVE ¬, &, OR |.


I HOPE YOU DONT GET THE IMPRESSION I AM DISSATISFIED.
QUITE THE CONTRARY. IT IS REMARKABLY ROBUST AND CLEVER,
AND I AM VERY IMPRESSED. SAVE THESE MESSAGES AND 
IF YOU GET A CHANCE DO THE SIMPLE STRAIGHTFORWARD THINGS
AND SEND ME A MESSAGE WHERE THE NEW FILE IS.